1. Bases de datos

Videos:
https://open.fing.edu.uy/courses/fsi/9/

Diapositivas:

[[bases_de_datos.pdf]]

Introducción

Seguridad de BD: protección de datos sensibles y mecanismos que permiten extraer información en forma controlada.

Bases de Datos almacenan datos y proveen información a sus usuarios.

Diferencia con seguridad de SO: Seguridad de BD controla acceso a la información más que a los datos.

Requerimientos de Protección

Objetivos de Ataque en una BD

  • Datos: los valores cargados en la base.
  • Cotas: cotas mínimas o máximas de un valor numérico pueden representar información valiosa.
  • Resultados negativos: si una BD contiene el número de condenas criminales, la información que una persona en particular no posee 0 condenas es información sensible.
  • Existencia: la existencia de datos puede ser una información sensible.
  • Valor probable: capacidad de inferir información a partir del resultado de otras queries.

BD Relacionales

Una BD relacional es una BD que es percibida por sus usuarios como una colección de tablas (y solamente tablas).

Tipos de Relaciones

  • Relaciones base (relaciones reales): relaciones autónomas e identificadas por un nombre, no son derivadas a partir de otras relaciones y tienen su propios datos.
  • Vistas: relaciones derivadas e identificadas por un nombre, son definidas en términos de otras relaciones, no almacenan datos propios.
  • Snapshots: relaciones derivadas e identificadas por un nombre, son definidas en términos de otras relaciones, almacenan datos propios.
  • Resultados de Queries: pueden o no ser identificadas con un nombre, no persisten an la BD.

Claves

Las tuplas en una relación deben ser unívocamente identificables.
Toda relación debe tener una clave primaria.
Cuando la clave primaria K de una relación A es a su vez un atributo de otra B, entonces K es una clave foránea de B.

> Modelos de seguridad #parcial

> El modelo básico: DAC en SQL #parcial

Basando en:

  • usuarios: autenticados durante logon.
  • acciones: incluyen SELECT, UPDATE, DELETE e INSERT.
  • objetos: tablas, vistas, columnas (atributos) de tablas y vistas.

Usuarios invocan acciones sobre los objetos, el DBMS decide si el acceso está autorizado.

Además, cuando un objeto es creado se le asigna un propietario (owner).

  • Inicialmente sólo el propietario tiene acceso al objeto.
  • Para que otros usuarios puedan tener acceso al objeto el propietario les debe otorgar un privilegio.
    (grantor, grantee, objeto, acción, grantable)
    • grantor: quién lo da
    • grantee: quién lo recibe
    • grantable: si el grantee puede transmitirlo a otros usuarios o no

> Otorgando y revocando privilegios sobre relaciones #parcial

Pasted image 20240413143044.png

> Control de acceso usando vistas #parcial

Pasted image 20240413143114.png

Ventajas del uso de vistas

  • Permiten definir reglas de control de acceso con un nivel de descripción muy cercano a los requerimientos de los aplicativos.
  • Permiten expresar y aplicar políticas tanto context-dependent como content-dependent.
  • Permiten implementar invocación controlada.
  • Vistas aseguradas pueden reemplazar a etiquetas de seguridad.
  • Los datos pueden ser fácilmente re-clasificados.

Ejemplos

Pasted image 20240413143457.png

El CHECK OPTION

INSERT y UPDATE pueden interferir con control de acceso basado en vistas.

  • Vistas pueden ser no actualizables debido a que no contengan la información que es necesaria para mantener la integridad de la correspondiente relación (tabla) base.
  • Blind writes: updates que sobrescriben una entrada existente.

La siguiente UPDATE debe ser pemitida?
Pasted image 20240413143640.png

  • Para las vistas definidas con la CHECK OPTION, UPDATE e INSERT sólo pueden efectuar modificaciones sobre la BD que satisfacen la definición de la vista.
  • Blind writes son posibles sólo si la CHECK OPTION es omitida.

Desventajas

  • Chequeo de acceso puede volverse complicado y lento.
  • La corrección de las definiciones de la vista debe ser verificada (realmente capturan la política de seguridad?).
  • Completitud y consistencia también debe ser verificada, las vistas pueden colisionar o pueden no llegar a cubrir toda la BD.
  • Puede llegar a ser difícil determinar quién tiene acceso a un determinada dato. Vistas no son un mecanismo muy adecuado cuando el interés es proteger los ítems de datos más que controlar las acciones de los usuarios.

MAC en BD

MAC especifica el acceso que sujetos tienen sobre los objetos basado en una clasificación de seguridad de los sujetos y los objetos.
DBMSs que satisfacen propiedades de MLS son denominados multilevel secure database management systems (MLS/DBMSs).
La mayoría de los MLS/DBMSs han sido diseñados basados en el modelo de Bell-La Padula (BLP).

Modelo Relacional Multinivel (RML)

El modelo relacional multinivel (RML) resulta de aplicar el modelo BLP en BD relacionales.
Usualmente son utilizados reticulados need-to- know (clases de acceso).

Cuestiones:

  • Granularidad: a qué elemento de la BD se le aplica la clasificación.
  • Restricciones de Integridad.

Dada una relación, una clase de acceso puede ser asociada a:

  • Toda la relación.
  • Cada tupla en la relación.
    • Este es el enfoque comúnmente adoptado en DBMSs comerciales.
  • Cada valor de atributo de cada tupla de la relación.
    • En lo que sigue se considerarán estos casos (sólo por ser el caso más interesante).

Una relación RML es caracterizada por los siguientes componentes:
Pasted image 20240413144140.png
Pasted image 20240413144158.png
Pasted image 20240413144212.png

Ejemplo de una relación RML

Pasted image 20240413144238.png

Instancias RML

  • Una relación dada puede entonces tener instancias con diferentes clases de acceso.
  • La instancia de clase de una relación contiene todos los datos que son visibles para sujetos de nivel (datos dominados por clase ).
  • Todos los elementos con clases de acceso mayores a , o incomparables con , son enmascarados con valores nulos (o valores ficticios).
Instancia Low

Pasted image 20240413144414.png

Condiciones de correción de RML

  • Para cada tupla en una RML los atributos de la clave primaria deben tener asociados la misma clase de acceso.
  • Para cada tupla en una RML la clase de acceso asociada a cada uno de los atributos que no son claves debe dominar a la clase de acceso de la clave primaria.

RBAC y DBMS

La mayoría de los DBMSs comerciales implementan RBAC.
Sin embargo, en la mayoría de los casos sólo implementan RBAC0 y algunas características de RBAC1.

> Comandos SQL (roles) #parcial

Pasted image 20240413144841.png
Pasted image 20240413144853.png
Pasted image 20240413144904.png

Seguridad de BD Estadísticas

BD estadística: información recuperada usando queries estadísticas (agregaciones) sobre atributos de una tabla.

Funciones de agregación en SQL:

  • COUNT: el número de valores en una columna.
  • SUM: la suma de los valores de una columa.
  • AVG: el promedio de los valores de una columa.
  • MAX: el valor máximo de una columna.
  • MIN: el valor mínimo de una columna.

Predicado de Query de una query estadística: especifica las tuplas usadas para computar la agregación.
Conjunto Query: tuplas que satisfacen el predicado de query.

Desafío de Seguridad

  • La BD contiene datos que son individualmente sensibles, acceso directo a algunos de los ítems de la base no es permitido.
  • Las queries estadísticas son permitidas, pero las mismas van a poder leer ítems de datos individuales.
  • Es posible entonces inferir información, por lo tanto control de acceso individual no es suficiente.
  • En una BD estadística la información fluye desde los datos individuales hacia las agregaciones que se computan sobre los mismos.
    Desafío: tratar de reducir ese flujo lo máximo posible.

Ataques

  • Agregación: el nivel de sensibilidad de una agregación computada sobre un grupo de valores puede diferir del nivel de sensibilidad de cada uno de esos valores.
  • Inferencia: derivación de información sensible a partir de datos no sensibles.
    • Ataque Directo: agregación computada sobre un número reducido de datos puede provocar fuga de información de datos individuales.
    • Ataque Indirecto: combinar información relativa a varias agregaciones.
    • Tracker Attack: un tipo efectivo de ataque indirecto.

Ataque Directo

Pasted image 20240413145441.png

El criterio de selección retorna un conjunto con sólo 1 elemento.
Solución: exigir que las queries retornen conjuntos de cardinalidad suficientemente grandes.

Ataques Tracker

  • Tracker individual para una tupla dada: predicado de query que permite derivar información relativa a esa tupla.
  • Tracker general: predicado que puede ser usado para encontrar respuestas a cualquier query.
  • Sea un tracker general y sea un predicado que identifique en forma unívoca la tupla objetivo.
    - Ejecutar dos queries a la BD con los predicados y ; la tupla objetivo es la única usada por las dos queries.
    - ‘Sumar’ los dos resultados y 'Restar' el resultado de ejecutar una query sobre toda la BD, queda solamente la tupla objetivo.
    Pasted image 20240413193230.png
    Pasted image 20240413193249.png
Contramedidas
  • Suprimir información obviamente sensible.
  • Disfrazar los datos.
    • Permutar randómicamente entradas en la BD de tal forma que una query individual de un resultado erróneo aunque el resultado estadísitico sea correcto.
    • Agregar perturbaciones al resultado de la query.
    • Desventaja: precisión y usabilidad se ve fuertemente reducida.
  • Mejor diseño del esquema de la base de datos.
  • “Trackear” lo que el usuario sabe: registrar acciones del usuario en un log de auditoría, análisis de query buscando secuencias sospechosas de queries.

Privacidad

Las organizaciones que almacenan datos personales de sus clientes, como nombre, dirección, edad, número de tarjetas de crédito, deben satisfacer leyes y regulaciones de protección de datos.

Principios Básicos de Protección

Principio de recolección limitada

Deberían existir límites para la recolección de datos personales, y los mismos deberían ser obtenidos en forma regulada y legal, con el consentimiento del sujeto involucrado.

Principio de Calidad de Datos

Los datos personales deben ser relevantes para el propósitos con el que serán utilizados, y de acuerdo a ese propósito, deberían ser correctos, completos y actualizados.

Principio de Seguridad

Los datos personales deben ser protegidos usando mecanismos adecuados de seguridad para proteger a los mismos contra riesgos como pérdida o acceso, destrucción, uso, revelamiento y modificación no autorizados.

Principio de Trazabilidad

El controlador de los datos debe ser responsable de aplicar y satisfacer las medidas que implementan los anteriores principios.